package com.audaque.springboot.foshanupload.mp.handler.impl;

import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.time.LocalDateTime;
import java.util.Date;

/**
 * @author zgb
 * @desc ...
 * @date 2022-03-19 21:17:00
 */


//全局配置字段填充
@Slf4j
@Component
public class MybatisPlusMetaObjectHandler implements MetaObjectHandler {
    /**
     * 一定要用@TableField(fill = FieldFill.INSERT)
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        //数据类型要与字段一一致,否则报错
        this.strictInsertFill(metaObject, "createTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
        this.strictInsertFill(metaObject, "createBy", () -> "0", String.class); // 起始版本 3.3.3(推荐)
        //逻辑删除
        this.strictInsertFill(metaObject, "delFlag", () -> "0", String.class); // 起始版本 3.3.3(推荐)

    }
    /**
     * 一定要用@TableField(fill = FieldFill.INSERT_UPDATE)
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        //数据类型要与字段一一致 ,否则报错
        this.strictUpdateFill(metaObject, "updateTime", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐))
        this.strictUpdateFill(metaObject, "updateBy", () -> "0", String.class); // 起始版本 3.3.3(推荐))
    }

}


